﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace COFE.Core.Logger
{
    public interface IEventLogger : IEventListener
    {
        IEnumerable<IEventLog> GetEventLog(DateTime startTimeUtc, DateTime endTimeUtc);
        IEnumerable<IEventLog> GetEventLog(TimeSpan pastTime);
        IEnumerable<IEventLog> GetEventLog(string sender);      
        IEventLog this[Int64 id] { get; }
    }

    public interface IEventLogger<T> : IEventLogger, 
        IEventListener<T> where T : EventArgs
    {
        new IEnumerable<IEventLog<T>> GetEventLog(DateTime startTimeUtc, DateTime endTimeUtc);
        new IEnumerable<IEventLog<T>> GetEventLog(TimeSpan pastTime);
        new IEnumerable<IEventLog<T>> GetEventLog(string sender);
        new IEventLog<T> this[Int64 id] { get; }
    }
    
}
